import { ElMessage } from "element-plus"
import { format } from 'date-fns'

const utils = {
    showMessage(message: string, type: 'success' | 'warning' | 'error', time: number) {
        ElMessage({
            message: message,
            type: type,
            duration: time
        })
    },
    getToken() {
        return localStorage.getItem('token')
    },
    removeToken() {
        localStorage.removeItem('token')
    },
    getCurrentTime() {
        return new Date().toISOString().slice(0, 19).replace('T', 'T');
    },

    changeTime(time:Date| null|string){
        if (!time) return '-';
        if (time instanceof Date) {
            return time.toISOString().slice(0, 19).replace('T', 'T');
        } else {
            return new Date(time).toISOString().slice(0, 19).replace('T', 'T');
        }
    },

    // 格式化日期 
    formatDate(timestamp: string | number | Date |null): string {
        // 处理空值情况
        if (!timestamp) return '-'

        try {
            // 如果传入的是Date类型，直接使用
            const date = timestamp instanceof Date
                ? timestamp
                : new Date(
                    typeof timestamp === 'string'
                        ? timestamp.includes('-')
                            ? timestamp // ISO格式直接使用
                            : Number(timestamp) // 纯数字字符串转换
                        : timestamp
                )

            // 验证日期有效性
            if (isNaN(date.getTime())) {
                throw new Error('Invalid timestamp')
            }

            // 格式化输出
            return format(date, 'yyyy-MM-dd HH:mm')
        } catch (error) {
            console.error('日期格式化失败:', error)
            return '无效日期'
        }
    },
    //获取图片的路径
    getImgUrl(url: String) {
        // 添加 ../assets/ 前缀来正确定位到 assets 文件夹
        return new URL(`../assets/image/${url}`, import.meta.url).href;
    },
}
export default utils